<script>
	import {
		reactive
	} from 'vue'
	// #ifdef APP-PLUS
	import {
		registerRequestPermissionTipsListener,
		unregisterRequestPermissionTipsListener,
		setRequestPermissionTips
	} from "@/uni_modules/uni-registerRequestPermissionTips"
	var PermissionTips = {
		"android.permission.CAMERA": "<h4 style=\"font-size:40px;margin-bottom: 26rpx;\">正在读取相机权限</h4><font color=#333333>申请获取您的相机拍照，用于上传头像，您可在“设置-隐私设置-更多-相机权限”中关闭此功能。</font>",
		"android.permission.READ_EXTERNAL_STORAGE": "<h4 style=\"font-size:40px;margin-bottom: 26rpx;\">正在读取相册状态权限</h4><font color=#333333>申请获取您的相册内容，用于上传头像和用户相册，您可在“设置-隐私设置-更多-相机权限”中关闭此功能。</font>",
		"android.permission.WRITE_EXTERNAL_STORAGE": "<h4 style=\"font-size:40px;margin-bottom: 26rpx;\">正在读取相册状态权限</h4><font color=#333333>申请获取您的相册内容，用于上传头像和用户相册，您可在“设置-隐私设置-更多-相机权限”中关闭此功能。</font>",
		"android.permission.CALL_PHONE": "<h4 style=\"font-size:40px;margin-bottom: 26rpx;\">正在读取拨打电话权限</h4><font color=#333333>申请获取您的拨打电话权限，用于拨打客服电话，您可在“设置-隐私设置-更多-电话权限”中关闭此功能。</font>"
	}
	// #endif
	export default {
		globalData: reactive({ //全局数据
			isFromApp: false,
		}),
		onLaunch: function() {
			console.log('App Launch', this)
			// #ifdef APP-PLUS
			var brand = uni.getSystemInfoSync().deviceBrand
			setRequestPermissionTips(PermissionTips)
			registerRequestPermissionTipsListener({
				onRequest: (e) => {
					console.log(e)
				},
				onConfirm: (e) => {
					console.log(e)
				},
				onComplete: (e) => {
					//华为手机在权限禁止之后，再次申请权限不会出现权限申请框。此时应该引导用户去系统设置开启此权限，不应该频繁申请。
					if (brand.toLowerCase() == "huawei") {
						var tips = {}
						var hasDeniedPermission = false
						for (var k in PermissionTips) {
							if (e[k] != "denied") {
								tips[k] = PermissionTips[k]
							} else {
								hasDeniedPermission = true
							}
						}
						setRequestPermissionTips(tips) // 更新弹框提醒，防止华为手机不出现权限申请框时权限提醒框闪烁的情况
						if (hasDeniedPermission) {
							uni.showModal({
								content: "权限已经被拒绝，请前往设置中开启"
							})
						}
					}
				}
			})
			// #endif

			// #ifdef MP
			const updateManager = uni.getUpdateManager(); //本API返回全局唯一的版本更新管理器对象： updateManager，用于管理小程序更新。
			updateManager.onCheckForUpdate((res) => { //当向小程序后台请求完新版本信息，进行回调方法
				if (res.hasUpdate) {
					updateManager.onUpdateReady((res) => { //当新版本下载完成，会进行回调
						uni.showModal({
							title: '更新提示',
							content: '新版本已经准备好，是否重启应用？',
							success(res) {
								if (res.confirm) {
									// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
									updateManager.applyUpdate();
								}
							}
						});
					});
					updateManager.onUpdateFailed((res) => {
						// 新的版本下载失败
						uni.showModal({
							title: '更新提示',
							content: '检查到有新版本，但下载失败，请检查网络设置',
							success(res) {
								if (res.confirm) {
									// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
									updateManager.applyUpdate();
								}
							}
						});
					});
				}
			})
			// #endif
		},
		onShow: function() {
			console.log('App Show')
		},
		onHide: function() {
			console.log('App Hide')
		},
		onExit: function() {
			unregisterRequestPermissionTipsListener(null)
		}

	}
</script>

<style>
	/*每个页面公共css */
	page {
		width: 100%;
		height: 100%;
		overflow: hidden;
		font-family: PingFang SC;
	}

	view,
	text {
		word-break: break-all;
		font-weight: 400;
	}

	image {
		display: block;
	}
	
	custom-page .page-content > view:only-child {
		height: 100%;
	}

	.clamp1 {
		display: -webkit-box;
		word-break: break-all;
		overflow: hidden;
		-webkit-box-orient: vertical;
		text-overflow: ellipsis;
		-webkit-line-clamp: 1;
	}

	.clamp2 {
		display: -webkit-box;
		word-break: break-all;
		overflow: hidden;
		-webkit-box-orient: vertical;
		text-overflow: ellipsis;
		-webkit-line-clamp: 2;
	}

	.clamp3 {
		display: -webkit-box;
		word-break: break-all;
		overflow: hidden;
		-webkit-box-orient: vertical;
		text-overflow: ellipsis;
		-webkit-line-clamp: 3;
	}

	.uni-row {
		display: flex;
		flex-direction: row;
	}

	.uni-column {
		display: flex;
		flex-direction: column;
	}

	/* 设置圆角 */
	checkbox.round .wx-checkbox-input,
	checkbox.round .uni-checkbox-input {
		width: 36rpx !important;
		height: 36rpx !important;
		border: 2rpx solid #C7C7C7;
		border-radius: 50% !important;
	}

	/* 设置背景色 */
	checkbox.yellow[checked] .wx-checkbox-input,
	checkbox.yellow.checked .uni-checkbox-input {
		width: 38rpx !important;
		height: 38rpx !important;
		border-radius: 50% !important;
		font-size: 16rpx;
		border: 0rpx solid #C7C7C7;
		background: linear-gradient(90deg, #FFA559, #FF8450) !important;
		color: #ffffff !important;
		padding: 10rpx !important;
		box-sizing: border-box;
	}

	.no-more-holder {
		position: absolute;
		left: 0;
		top: 0;
		width: 100%;
		height: 100%;
		background-color: #f9f9f9;
	}
</style>